package entity

import (
	. "gitee.com/night-tc/gobige/entity/props"
	. "gitee.com/night-tc/gobige/msghandler"
)

/*
被管理的Entity对象需要实现的最小接口

	1.实现IEntityBase接口
	2.实现IMsgHandler接口
	3.实现ITime接口
	4.需要实现自运行和对象生命周期的方法
	5.实现IRun接口
*/
type IEntity interface {
	IBase
	ITime
	IMsgHandler
	IRun
	ILoop
	IMsgOwner
}

/*
支持路由通信、属性同步、时间同步
完整Entity对象
*/
type Entity struct {
	/* 组合 */
	// 基础通信路由有关
	EntitySess
	// ITime实现
	EntityTime
	// 支持独立协程启动
	EntityRun
	//属性同步器（有可能为空）
	*PropsSyncContainer

	// /* 属性 */

	//后代对象
	realPtr IEntityReal
}
